package com.lams.jdbc;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

public interface IBaseDAO {
	
	/**
	 * 释放连接
	 * @throws SQLException
	 */
	public abstract void freeConnection() throws SQLException;
	
	/**
	 * 更新操作
	 * @param sql
	 * @return
	 * @throws SQLException
	 */
	public abstract int executeUpdate(String sql) throws SQLException;
	/**
	 * 批量更新
	 * @param sql 语句参数以 "@@key," 格式书写
	 * @param source List<Map>
	 * @return
	 * @throws SQLException
	 */
	public abstract int[] batchUpdate(String sql, List source)
			throws SQLException;
	/**
	 * 查询操作
	 * @param sql
	 * @return
	 * @throws SQLException
	 */
	public abstract List executeQuery(String sql) throws SQLException;
	/**
	 * 查询单条记录
	 * @param sql
	 * @return
	 * @throws SQLException
	 */
	public abstract Map executeQueryRecode(String sql) throws SQLException;
//	/**
//	 * 提交
//	 * @throws SQLException
//	 */
//	public abstract void commit() throws SQLException;
//	/**
//	 * 回滚
//	 * @throws SQLException
//	 */
//	public abstract void rollback() throws SQLException;
	/**
	 * 多条更新/删除语句执行，一句异常全部回滚
	 * @param sqls
	 * @throws SQLException
	 */
	public abstract int[] batchUpdate(String[] sqls) throws SQLException;
}